package top.jianx.storage.props;

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * 〈Storage配置类〉
 *
 * @author Jianx
 * @create 2022/3/20
 * @since 1.0.0
 */
@Data
@Component
@ConfigurationProperties(prefix = "spring.storage")
public class StorageProperties {

    /**
     * oss类型
     */
    private String name;

    /**
     * 对象存储服务的URL
     */
    private String endpoint;

    /**
     * Access key就像用户ID，可以唯一标识你的账户
     */
    private String accessKey;

    /**
     * Secret key是你账户的密码
     */
    private String secretKey;

    /**
     * 默认的存储桶名称
     */
    private String bucketName = "default";

    /**
     * 默认的存储规则配置
     */
    private StorageRule storageRule;

    /**
     * 默认的StorageFile配置
     */
    private StorageFile storageFile;



    /**
     * 存储规则配置class
     */
    @Data
    public class StorageRule {

        /**
         * 默认的 存储规则名称
         */
        private String storageRule = "default";

        /**
         * 默认的 是否覆盖上传
         */
        private Boolean isCover = true;

    }

    /**
     * 存储文件管理配置class
     */
    @Data
    public class StorageFile {

        /**
         * 默认的 是否设置有效时间内访问
         */
        private Boolean timeLines = true;

        /**
         * 默认的 设置有效时间内访问的有效时间
         */
        private Integer timeLiness = 60*60*24;

    }
}
